Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Edycja CommandBooka, receiver.playSound


Rekomendowane odpowiedzi

Opublikowano

Yo.

Chciałbym dodać do komponentu messaging od CommandBooka noteblockową nutkę przy odbieraniu prywatnej wiadomości. Próbowałem na różne metody zmieniać i przekręcać elementy, ale gówno z tego wyszło. Byłbym wdzięczny, gdyby nikt na mnie nie wieszał psów za wsadzanie łap w miejsca, na których się totalnie nie znam :3

 

receiver.playSound(receiver.getLocation(), Sound.NOTE_PIANO, 1, 0);
To próbowałem. I wiele różnych rzeczy. Player, receiver, sender, entity... Kurczę, wszystko. I cały czas kod wywala albo na pierwszym receiverze, albo na playSound, albo na lokacji. Nie ogarniam.

Jeśli mi odpowiadasz, zacytuj mój post - lub otaguj przy użyciu @Quasindro.
Jak tego nie zrobisz, najprawdopodobniej nie wrócę do tego tematu.


uExDb2M.jpg

'I have often wished I had time to cultivate modesty... But I am too busy thinking about myself.' ~Edith Sitwell.

Opublikowano

jako receiver musisz po prsotu dać tam zmienną która przechowuje tego gracza do którego chcesz wysłać ten dzwięk.

Nie mam pewności która to zmienna, wrzucić większą część kodu?

Jeśli mi odpowiadasz, zacytuj mój post - lub otaguj przy użyciu @Quasindro.
Jak tego nie zrobisz, najprawdopodobniej nie wrócę do tego tematu.


uExDb2M.jpg

'I have often wished I had time to cultivate modesty... But I am too busy thinking about myself.' ~Edith Sitwell.

Opublikowano

możesz wrzucić, spr też sam przeanalizować kod

Oprócz kawałka zaznaczonego hashami wszystko działa, to prawie domyślny kod.

 

 

public void messagePlayer(CommandSender sender, String target, String message) throws CommandException {
        CommandSender receiver =
                PlayerUtil.matchPlayerOrConsole(sender, target);
        UserSession receiverSession = sessions.getSession(UserSession.class, receiver);
        String status = receiverSession.getIdleStatus();
        if (status != null) {
            sender.sendMessage(config.pmColor + PlayerUtil.toColoredName(receiver, config.pmColor) + " is afk. "
                    + "They might not see your message."
                    + (status.trim().length() == 0 ? "" : " (" + status + ")"));
        }

        receiver.sendMessage(ChatColor.GOLD + " ("
                + PlayerUtil.toColoredName(sender, config.pmColor) + "): "
                + config.pmTextColor + message);
#########################################################################
        receiver.playSound(PlayerUtil.matchPlayerOrConsole(sender, target), Sound.NOTE_PIANO, 1, 0);
#########################################################################
        sender.sendMessage(ChatColor.YELLOW + " > ("
                + PlayerUtil.toColoredName(receiver, config.pmColor) + "): "
                + config.pmTextColor + message);

        CommandBook.logger().info("(PM) " + PlayerUtil.toColoredName(sender, ChatColor.RESET) + " -> "
                + PlayerUtil.toColoredName(receiver, ChatColor.RESET) + ": " + message);

        sessions.getSession(UserSession.class, sender).setLastRecipient(receiver);

        // If the receiver hasn't had any player talk to them yet or hasn't
        // send a message, then we add it to the receiver's last message target
        // so s/he can /reply easily
        receiverSession.setNewLastRecipient(sender);
    }

 

 

Starałem się przeanalizować go samodzielnie, naprawdę. Próbowałem wszystkich elementów, które przypominały zmienne. PlayerUtils, UserSession... Nic nie poszło. Cały czas w konsoli przy kompilacji mi wywala "error: cannot find symbol".

 

Nigdy nie zwracam się o pomoc bez własnoręcznej próby, zależy mi na samokształceniu na błędach i nie lubię być wodzony za rękę. Ale jak coś nie działa i wyraźnie sobie z tym nie radzę - nie ma innego wyjścia, jak zapytać na forum.

Jeśli mi odpowiadasz, zacytuj mój post - lub otaguj przy użyciu @Quasindro.
Jak tego nie zrobisz, najprawdopodobniej nie wrócę do tego tematu.


uExDb2M.jpg

'I have often wished I had time to cultivate modesty... But I am too busy thinking about myself.' ~Edith Sitwell.

Opublikowano

daj tam

if (receiver instanceof Player) {

Player p = (Player)receiver;

p.playSound(p.getLocation(), Sound.NOTE_PIANO, 1, 0);

}

 

Jak nie zadziała...

to

Player p = Bukkit.getPlayerExact(target); // lub getPlayer

if (p != null){

p.playSound(p.getLocation(), Sound.NOTE_PIANO, 1, 0);

}

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

daj tam

if (receiver instanceof Player) {

Player p = (Player)receiver;

p.playSound(p.getLocation(), Sound.NOTE_PIANO, 1, 0);

}

 

Jak nie zadziała...

to

Player p = Bukkit.getPlayerExact(target); // lub getPlayer

if (p != null){

p.playSound(p.getLocation(), Sound.NOTE_PIANO, 1, 0);

}

Ten drugi nie chciał się skompilować w obu/wszystkich trzech wariantach (nie miałem pewności czy getPlayer też musi mieć target, także przetestowałem z i bez).

Pierwszy natomiast działa najlepiej, jak wysyłam wiadomość do samego siebie. Jak piszę ze znajomym, to "blip" pojawia się bardzo sporadycznie, praktycznie co parę minut/kilkanaście wiadomości.

Jeśli mi odpowiadasz, zacytuj mój post - lub otaguj przy użyciu @Quasindro.
Jak tego nie zrobisz, najprawdopodobniej nie wrócę do tego tematu.


uExDb2M.jpg

'I have often wished I had time to cultivate modesty... But I am too busy thinking about myself.' ~Edith Sitwell.

Opublikowano

Ten drugi nie chciał się skompilować w obu/wszystkich trzech wariantach (nie miałem pewności czy getPlayer też musi mieć target, także przetestowałem z i bez).

Pierwszy natomiast działa najlepiej, jak wysyłam wiadomość do samego siebie. Jak piszę ze znajomym, to "blip" pojawia się bardzo sporadycznie, praktycznie co parę minut/kilkanaście wiadomości.

ten drugi powinien też działać, może nie zaimportowałeś "Bukkit" ?,

 

Powinno działac normalnie, chyba że są jeszcze jakieś inne metody które odpowiadają za dostraczanie wiadomości

To już jest koniec smerfa:


http://www.mpcforum.pl/topic/1323530-info-znikam/


GG: 48522543


PS: Na innych forach i stronach znajdziesz mnie pod nickiem: 


BukkitSmerf

Opublikowano

ten drugi powinien też działać, może nie zaimportowałeś "Bukkit" ?,

 

Powinno działac normalnie, chyba że są jeszcze jakieś inne metody które odpowiadają za dostraczanie wiadomości

Oh! Faktycznie, mój błąd, po prostu wrzuciłem kod do opcji szybkiej odpowiedzi, zamiast zwykłego msg. Działa, brzmi pięknie! Dziękuję bardzo za pomoc, Karolino <3

Jeśli mi odpowiadasz, zacytuj mój post - lub otaguj przy użyciu @Quasindro.
Jak tego nie zrobisz, najprawdopodobniej nie wrócę do tego tematu.


uExDb2M.jpg

'I have often wished I had time to cultivate modesty... But I am too busy thinking about myself.' ~Edith Sitwell.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...